package benchmarks.tpch;

import api.Procedure;
import api.result.Result;
import api.connection.DBConnection;

/***
 * TPC-H中的22种基本查询参考tpc-h文档第29页至67页
 * 文档提供的是SQL的事务代码，也可以参考
 * https://github.com/oltpbenchmark/oltpbench/tree/master/src/com/oltpbenchmark/benchmarks/tpch/queries
 * 负责Mongo和Redis的同学需要根据转换后的结构翻译并转换这22种查询（暂时只做6种）
 * 结构转换后的查询可参考
 * TPC-H applied to MongoDB - How a NoSQL database performs.pdf
 * 以及（重要）
 * http://alronz.github.io/Factors-Influencing-NoSQL-Adoption/site/MongoDB/Examples/TPC-H%20Queries/
 */
public abstract class TPCHQuery extends Procedure {
    /***
     * 一个TPC-H的查询
     * @param connection 实例化的connection或client
     * @return
     */
    public abstract Result run(DBConnection connection);
}
